/*
 * @Description:
 * @Author: Haor
 * @Date: 2022-04-02 15:41:52
 * @LastEditTime: 2022-05-10 10:08:33
 * @LastEditors: Haor
 */

/**
 * 格式化日期
 * @param {Date|Number} d 日期
 * @param {String} fmt 格式化
 * @return {String} YYYY-MM-DD hh:mm:ss
 */
export const format = (d, fmt = 'YYYY-MM-DD hh:mm:ss') => {
	const date = d ? new Date(d) : new Date()
	const o = {
		'Y+': date.getFullYear(),
		'M+': date.getMonth() + 1, // 月
		'D+': date.getDate(), // 日
		'h+': date.getHours(), // 时
		'm+': date.getMinutes(), // 分
		's+': date.getSeconds(), // 秒
		W: date.getDay() // 周
	}

	for (const k in o) {
		if (new RegExp('(' + k + ')').test(fmt)) {
			fmt = fmt.replace(RegExp.$1, () => {
				if (k === 'W') {
					// 星期几
					const week = ['日', '一', '二', '三', '四', '五', '六']
					return week[o[k]]
				} else if (k === 'Y+' || RegExp.$1.length == 1) {
					// 年份 or 小于10不加0
					return o[k]
				} else {
					return ('00' + o[k]).substr(('' + o[k]).length) // 小于10补位0
				}
			})
		}
	}
	return fmt
}
